home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 6 / The Arsenal Files 6 (Arsenal Computer).ISO / os2 / dmp105.zip / DMP.DOC < prev    next >
Text File  |  1996-03-09  |  17KB  |  337 lines

  1.                     Dual Module Player for OS/2 1.041
  2.                     ---------------------------------
  3.  
  4. This is a port of Otto Chrons' Dual Module Player 4.0 (a DOS program) by
  5. Julien Pierre.
  6.  
  7. Dual Module Player is a program for playing music modules on different
  8. sound systems on IBM PC compatible machines. It uses DSMI sound
  9. programming interface (Digital Sound & Music Interface) to achieve
  10. high quality sound and wide sound card support.
  11.  
  12. Currently DMP supports following module formats:
  13.  
  14.     MOD,NST     The original Amiga module format (SoundTracker,
  15.                 NoiseTracker). Also supported by many PC trackers.
  16.                 Original format supported only 4 channels but many
  17.                 variants can support up to 32 channels.
  18.  
  19.     STM,S3M     Scream Tracker format. S3M can support up to 16
  20.                 channels while STM is limited to 4.
  21.  
  22.     669         Composer669 module format using 8 channels.
  23.  
  24.     FAR         Farandole tracker format capable of using 16 channels.
  25.  
  26.     MTM         MultiTracker format. It's a MOD variant with up to 32
  27.                 channels.
  28.  
  29.     AMF         DSMI's internal module format. You can convert all the
  30.                 previous formats to AMF with M2AMF but not vice versa.
  31.                 Using AMF format saves you disk space because AMFs are
  32.                 usually smaller than other module formats. DMP can
  33.                 also load AMFs faster than other formats. But remember
  34.                 that you cannot play AMFs on any other player, nor can
  35.                 you convert AMFs back to any other format.
  36.  
  37. The command-line syntax is the following :
  38. DMP module [/8] [/16] [/11K] [/22K] [/44K] [/MONO] [/STEREO] [/RANDOM]
  39. [/AMP={NONE,AUTO,LOW,MEDIUM,HIGH}] [/QUALITY] [/NOQUALITY] [/VOL={0-100}]
  40. [/DRIVER={DART,FILE,MMPM2,NOSOUND}] [/FILENAME=name] [/DARTBUFFER=size]
  41. [/LOOP] [/NOPLAY]
  42.  
  43. All the parameters in [] are optional. The order is not relevant.
  44. The only parameter you have to specify is the module filename.
  45.  
  46. By default, DMP will try to use DART using quality mode, and AUTO
  47. amplification level. It will also try to find the best capabilities for your
  48. soundcard. Priority is in this order : stereo, resolution, then sampling rate.
  49. For example, that means DMP will choose stereo 8-bit 44kHz over mono
  50. 16-bit 44kHz, even though they are the same data rate.
  51. If you specify the sampling rate, resolution, or stereo via the command-line,
  52. this autodetection is disabled.
  53. If DMP can't initialize DART, it will automatically try MMPM2 mode.
  54. If you specify a driver via the command line, DMP will only use this one
  55. and not try any other driver.
  56. DMP will report an error if it cannot initialize the soundcard.
  57.  
  58. You can get an explanation on the parameters by typing DMP without any
  59. parameter.
  60. Here are some additional information :
  61.  
  62. /8 : switches to 8-bit mode. Default is 16-bit.
  63. Using 8-bit mode degrades the quality. It doesn't decrease the CPU usage -
  64. except if you use the MMPM/2 sound driver.
  65. You should only use this if you have an 8-bit soundcard like an original
  66. Soundblaster or Soundblaster Pro.
  67. /16 : switches to 16-bit mode, which is the default. 16-bit samples give
  68. a better sound quality and should be used if your soundcard is
  69. capable of 16-bit sound.
  70.  
  71. /MONO : sets monophonic mode. Default is stereophonic.
  72. Using this option will divide the CPU time required by two.
  73. /STEREO : sets stereophonic mode, which is the default.
  74.  
  75. /NOQUALITY : disables quality mode. Default is quality mode.
  76. Quality mode was originally implemented only on 8-bit sounds cards to
  77. overcome the dynamic limitation of 8-bits. It uses 16-bit mixing
  78. routines to achieve 96dB dynamic range (instead of 48dB) and post
  79. processes the 16-bit data into 8-bits with a look-up table that
  80. amplifies the sound. Because of this post processing, the Quality mode
  81. takes more processor power but it's worth it. To further amplify the
  82. sound you can use '/AMP=level' command line option.
  83. The sound drivers only support quality mode when mixing at 8 bit.
  84. Initialization will fail if you try /8 in conjunction with /NOQUALITY.
  85. For 16-bit cards there's no need to use Quality mode to improve the
  86. quality of the sound. But with up to 32 channels the dynamics of
  87. individual channels go worse i.e. the volume is lower. You can of
  88. course select an amplification option in the sound setup to amplify the
  89. sound but there is always a risk of click and noise if the sound
  90. overruns.  This is where 16-bit Quality mode comes in. It uses a
  91. temporary 32-bit buffer to do the mixing and post processes the buffer
  92. by clipping values that can't fit to 16-bits. 
  93. /QUALITY : enables quality mode, which is the default.
  94.  
  95. /DRIVER=name : sets the sound driver. May be DART (default), MMPM/2, or FILE.
  96. /DRIVER=MMPM2 :
  97. If DMP cannot initialize DARt, it will use the MMPM/2 sound driver which
  98. should work on all soundcards supported by MMPM/2. However, this requires a
  99. lot of memory for buffering, and also a lot of CPU. Because of buffering, the
  100. response to keyboard commands will be delayed - from 4 seconds in 16-bit 44
  101. kHz stereo mode to about one minute if you use 8-bit 11 kHz mono mode (I
  102. strongly discourage you from using this one !). Also, there will be a
  103. corresponding delay before the sound begins. So be patient when using
  104. low-quality modes ! Don't e-mail me to say you don't hear anything.
  105. The initial delay is due to a bug in MMPM/2 that I bypassed by putting 800
  106. KB of blank data at the beginning. If IBM solves this one, I could remove it.
  107. However, the delay in response cannot be suppressed when using MMPM/2
  108. playlists. The delay doesn't apply to the volume command, which controls the
  109. hardware setting of the soundcard.
  110. /DRIVER=DART :
  111. To overcome these limitations, IBM created DART - Direct Audio real-time.
  112. It allows much faster access to the soundcard, and real-time as the name says.
  113. It has none of the drawbacks of MMPM/2 playlists mentioned above.
  114. There will be no initial delay and the keyboard response should be instant.
  115. The problem with DART is that it hasn't been officially released. To use it,
  116. you need two DLLs from the Entertainment Toolkit that is found on
  117. Developer's Connection Volume 8 - new versions of AMPMXMCD.DLL and AUDIOSH.DLL.
  118. I was told they could be found at
  119. http://www.polsci.wvu.edu/Henry/Files/dart.zip
  120. Download at your own risk.
  121. Another problem is that it doesn't work well with all soundcards (see the
  122. /DARTBUFFER parameter), and some cards will require new drivers.
  123. IBM still hasn't answered me about the distribution of the DART DLLs - I
  124. don't know if I am allowed to distribute them with my application. In doubt,
  125. I didn't put them. So sadly you'll have to get a Devcon 8 to use DMP in DART
  126. mode.
  127. /DRIVER=FILE :
  128. This sound driver directs output to the hard disk, just as in the first alpha
  129. of DMP that was released in August. By default it goes to TEST.WAV, but you
  130. can change this with /FILENAME=name.
  131. The volume command has no effect in this mode.
  132. /DRIVER=NOSOUND :
  133. This is a fake sound driver. There is no output when using that driver. It's
  134. mostly there for testing. You can also use it with /NOPLAY to test if your
  135. modules are loadable with DMP.
  136.  
  137. /NOPLAY :
  138. Prevents DMP from playing the file. In this mode, DMP will just load the files
  139. given at the command line without playing them or prompting for keyboard.
  140. It's useful to test if your modules are compatible with DMP. If you don't want
  141. DMP to take the sound card, use /DRIVER=NOSOUND.
  142.  
  143. /DARTBUFFER=size :
  144. This parameter sets the size of the DART buffer.
  145. By default, DMP will use the value suggested by the soundcard driver.
  146. If you have problems with the sound (distortion, or sound stops under heavy
  147. system load), you can override it. Be careful with that parameter.
  148. The current beta of DART (from Devcon 8/9) can crash OS/2 entirely when using
  149. incorrect parameters. It does this if I use a small buffer (<512 bytes) or
  150. large (>64K). Beware that the higher the buffersize, the less real-time DMP
  151. will be.
  152. If you can't get it to work right, try running DMP in MMPM/2 mode instead.
  153. New soundcard drivers may also solve the problem.
  154.  
  155. /LOOP :
  156. This mode will make the module loop forever. You'll have to type ESC to stop it.
  157.  
  158. :songlist : plays a list of files.
  159. This option will make DMP play each module listed in the "songlist" file.
  160. It must be an ASCII file containing the full name of each module with relative
  161. paths. You can include wildcards inside songlists.
  162.  
  163. /RANDOM : will play the modules in random order.
  164.  
  165. /VOL=xxx : sets the volume to xxx at the beginning of the program, with
  166. 0<=xxx<=100.
  167.  
  168. /MOD : when this switch is on, DMP will assume that a file is a 15-channel
  169. MOD when it doesn't recognize its format. By default it will report an error.
  170. This is needed because these modules do not have a signature.
  171. Beware : if you try to load non-MOD files, it might crash the program.
  172.  
  173. I think that's it.
  174.  
  175.                                 GREETINGS
  176.                                 ---------
  177.  
  178. I have to thank many people for their testing of DMP. If you have been
  179. forgotten, I'm sorry. I'll put you in the next version ;)
  180. Oc, Culus, Nightboob, Os2wizard, dandaman, rwg, hrbeing, Timur Tabi, alav,
  181. Linden deCarmo.
  182.  
  183. I must say the OS/2 porting was a real nightmare. It lasted 17 months,
  184. but it made me about 10 years older even though I'm only 19.
  185.  
  186.                             CONTACTING THE AUTHOR
  187.                             ---------------------
  188.  
  189. I can be contacted on the internet as madbrain@ibm.net.
  190.  
  191. I don't have a snail mail address/phone at this time, because I just moved
  192. to Sarasota, Florida and am at a motel until I find a nice appartment (I know,
  193. I wrote in the 1.04 doc that I would move in June only, but I had probably not
  194. slept the night I did that version :-)).
  195.  
  196. You can also find me as "madbrain" on Internet Relay Chat (check that it is
  197. my address in ".fr" as other people are using this nickname also).
  198.  
  199. You can usually find the latest release version of DMP on hobbes.nmsu.edu.
  200. Betas will be available from my homepage at
  201. http://www.polsci.wvu.edu/Henry/Madbrain
  202.  
  203.                                     BUGS
  204.                                     ----
  205.  
  206. No program is 100% bug free and DMP is no exception, but I have been fighting
  207. with bugs very hard before releasing it - that's why it took so much time.
  208. If you ever used the alphas of DMP that I posted on Hobbes, you can see the
  209. huge improvement. I have been congratulated about its stability indeed.
  210.  
  211. When reporting a bug, please always mention which soundcard you are using,
  212. with the version of the driver, the version of MMPM/2 and OS/2.
  213.  
  214. Known bugs :
  215. - Users have reported various problems when using some soundcards :
  216. * PAS/16. Here is my advice for this card : use the DART DLLs and the
  217. /DARTBUFFER=16384 parameter. MMPM2 mode may or may not work correctly.
  218. * SB Pro. Volume control is reportedly screwed. But CL isn't developing
  219. the SB Pro drivers anymore.
  220. * SB AWE 32
  221. * GUS. I'm told you should use ULTRA085 for DMP to work with it.
  222. Others have had great success with those, so I don't really know what to
  223. do. It seems to depend a lot on the driver. Actually I have regular SB16s in
  224. both of my machines so I can't test them all myself.
  225. I'm going to fix DMP for the PAS/16 at least as my mother has one in her PC.
  226. I wish the SB Pro driver would load with a SB16, but there is a hardware
  227. check and it doesn't. For SB AWE and GUS, you're on your own - unless you
  228. want to offer me one. You have my address afte all !
  229. - In MMPM/2 mode, the module stops before it is finished. That's because of
  230. MMPM/2 buffering. It will eventually be corrected, but I recommend using
  231. DART wherever possible.
  232. - a few modules will still crash DMP. But they also crash DMP for DOS :-)
  233. * New SB "DART" drivers.
  234. I have been in contact with the driver author at Creative. He says it
  235. they work fine as long as you set the DARTBUFFER at half the size of
  236. the DMA buffer set in CONFIG.SYS on the command-line of your driver.
  237. Doesn't sound very practical to me ! It looks like the previous (Warp)
  238. SB drivers were more DART-compliant !
  239.  
  240.                               REVISION HISTORY
  241.                               ----------------
  242.  
  243. 1.0, released November 30th, 1995 : initial release.
  244.  
  245. 1.01, released December 5th 1995 : bugfix in the initialization routine,
  246. addition of songlist mode.
  247.  
  248. 1.02, released December 11th 1995 :
  249. - addition of wildcard support (including inside songlists)
  250. - "@" character for songlists was replaced by ":" since "@" can be used in
  251. filenames
  252. - addition of "/VOL=" option to set volume on startup
  253. - you can now use any number of songlists and files on the command line
  254. - addition of the "Q" key to exit the program instead of going to the next
  255. module
  256. - addition of random playing mode with /RANDOM
  257.  
  258. 1.03, released December 19th 1995 :
  259. - correction of a small bug in file parsing introduced in 1.02.
  260. Apparently I was the only one to discover it.
  261. - separation of the DSMI interface and the sound drivers.
  262. DSMI is now compiled with Watcom instead. As a result :
  263. * some corrupted modules which previously caused DMP to crash
  264. will now load. This is because of differences between the IBM &
  265. Watcom runtime libraries.
  266. * no more bug in looping mode. I still have to figure out why,
  267. though :-)
  268. - the sound drivers remain compiled with IBM C Set ++ because I
  269. can't get the Warp Toolkit to work with Watcom correctly, and
  270. some of my C++ doesn't work with it also.
  271. - small modification in DART volume command. *might* correct a
  272. problem with DART & SB Pro. I need feedback on this.
  273. - DSMI for OS/2 should now be at the exact same level of
  274. stability as the DOS version.
  275. - Phone bill to pay now $3000 :-(
  276.  
  277. 1.04, released February 10th 1996 :
  278. - added the /MOD parameter to assume 15-channel MOD file.
  279. - removed some debug code in the DART sound driver that caused beeps to
  280. be generated on the PC speaker.
  281. - added support for /16, /STEREO and /QUALITY parameters to make the
  282. command-line more consistent.
  283. - corrected a bug in memory deallocation that caused a crash.
  284. - added support for the NOSOUND driver via /DRIVER=NOSOUND.
  285. - added the /NOPLAY parameter.
  286. - made DETECT mode the default and removed the /DETECT parameter.
  287. - added information about the sound driver loaded by DMP and its settings.
  288. - corrected a bug in the FILE driver which appeared when overriding the output
  289. file name.
  290. - modified the DART driver to use the suggested buffer value instead of 4096.
  291. - corrected a bug in the S3M loader which sometimes caused an exception at
  292. the end of a module.
  293. - compiled with C Set ++ 2.1 again
  294.  
  295. 1.041, released March 9th 1996 :
  296. - fixed a stupid bug in command-line parsing that was optimized in 1.04. It
  297. prevented some parameters from being accepted, like /VOL=xx where xx had more
  298. than one digit.
  299. - added the M2AMF utility to convert modules to the AMF format, which takes less
  300. space. Keep in mind you can only play those with DMP, and the conversion only
  301. works one way.
  302. - played with compiler optimizations a bit to reduce EXE/DLL size. I hope it
  303. still works :-)
  304.  
  305.                              UPCOMING FEATURES
  306.                              -----------------
  307.  
  308. I may or may not do the following :
  309. - code a PM graphical user interface for DMP
  310. - add the .XM module format
  311. - write a MMPM/2 IO Procedure for modules so that they are supported
  312. automatically in all MMPM/2 applications.
  313. - port the textmode interface of DOS DMP to OS/2
  314. - rewrite the MMPM/2 driver so that the buffering problem is gone
  315. - change the driver model to an extensible object-oriented architecture,
  316. so that someone can write a driver for native GUS for example.
  317. - add support for the older SBOS2.SYS driver. This would make DMP work
  318. on SB clone cards that don't have an OS/2 driver.
  319. - modify the multimedia drivers so that system sounds can interupt the
  320. module playing.
  321. - integrate DSMI with the IBM Real-Time MIDI subsystem to make audio/music
  322. synchronization possible.
  323. - modified the sound drivers to return an error when noquality 8-bit mode
  324. was request. Trying this on previous versions produced an exception.
  325.  
  326.                                   LICENSE
  327.                                   -------
  328.  
  329. Dual Module Player for OS/2 is a freeware program.
  330.  
  331. Dual Module Player is copyrighted by me and Otto Chrons.
  332. You are only allowed to distribute it in its original form.
  333.  
  334. Programmers interested in using modules in their OS/2 programs should look at
  335. the DSMI.OS2 file. DSMI is a commercial library, not freeware.
  336.  
  337.